package com.pojotest.pojotest.mapper;

import com.pojotest.pojotest.pojo.XboxGame;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * mybatis上的mapper类，只需要定义接口，不需要写实现，就可以完成数据库的修改操作
 * 接口是由mybatis框架来自动生成和维护的
 * 我们想要让mapper来实现对数据库的操作，那么可以指定sql来确定要做什么操作
 */
@Mapper
public interface XboxMapper {

    /**
     * 查询所有的游戏
     * @return
     */
    @Select("SELECT * FROM xbox_games order by publish_time desc")
    List<XboxGame> findAll();

    /**
     * 可以使用#{id} 这种方式来获取参数中的值
     * @param id
     * @return
     */
    @Select("SELECT * FROM xbox_games WHERE id =#{id}")
    XboxGame findById(int id);

    /**
     * 根据发行刊号来查询指定游戏
     * @param publish_no
     * @return
     */
    @Select("SELECT * FROM xbox_games WHERE publish_no = #{publish_no}")
    XboxGame findByPublishNo(String publish_no);

    /**
     * 新增一条游戏记录
     * @param xboxGame
     * @return
     */
    @Insert("INSERT xbox_games(name, publisher, publish_no, version, price, publish_time) values (#{name}, #{publisher}, #{publish_no}, #{version}, #{price}, #{publish_time})")
    boolean add(XboxGame xboxGame);

    @Update("UPDATE xbox_games set name = #{param1} where id = #{param2}")
    boolean update(String name, int id);

    /**
     * 根据游戏id删除游戏
     * @param id
     * @return
     */
    @Delete("DELETE FROM xbox_games WHERE id =#{id}")
    boolean deleteById(int id);
}